/* ------------------------------------------ http请求工具类 ------------------------------------------ */

import axios from "axios";
// 请求实例
const instance = axios.create({
  timeout: 60 * 1000, // 请求超时时长
});

function setConfig(config) {
  // 拼接真正的请求路径
  config.url =  "/api" + config.url
  console.log('url',config.url)
}

// 请求拦截器
instance.interceptors.request.use(
  config => {
    try {
      // 处理不同的请求
      if (config.method === "post") {
        
      } else if (config.method === "get") {
        // get请求
        setConfig(config);
      }
    } catch (error) {
      // 发生错误，关闭请求：会进返回拦截器的error分支
      const source = axios.CancelToken.source();
      source.cancel(`请求被取消，原因：${error.message}`);
    }
    console.log('最后的config', config)
    return config;
  },
  error => {
    // 打印日志
    console.log(error);
    // 返回promise
    return Promise.reject(error.message);
  }
);

// 返回拦截器
instance.interceptors.response.use(
  response => {
    try {
      // 打印日志
      console.log(response);
      // 返回数据
      return response.data;
    } catch (error) {
      error.config = response.config;
      // 打印日志
      console.log(error);
      // 返回reject
      return Promise.reject(error.message);
    }
  },
  error => {
    // 打印日志
    console.log(error);
    // 返回reject
    return Promise.reject(error.message);
  }
);

export const get = (interfaceObj) => {
  return instance.get(interfaceObj);
};

const http = {
  get
};

export default http;
